package com.weiqiao.mall.repository;

import com.weiqiao.base.dao.IBaseMongoDao;
import org.bson.Document;
import org.bson.conversions.Bson;
import org.springframework.data.domain.Pageable;

import java.util.List;

public interface IPageDecorationRepository extends IBaseMongoDao {

    /**
     * 分页查询
     *
     * @param filter
     * @param sort
     * @param page
     * @param size
     * @return
     */

    List<String> findAll(Bson filter, Bson sort, int page, int size);

    /**
     * 查询单个
     *
     * @param filter
     * @return
     */
    String findOne(Bson filter);

    /**
     * 新增、修改
     *
     * @param filter
     * @param json
     * @return
     */
    boolean updateOne(Bson filter, String json);

    /**
     * 根据条件查询
     *
     * @param filter
     * @return
     */

    List<String> findAll(Bson filter);


    /**
     * 根据条件查询页面装修首页数据
     *
     * @param filter
     * @return
     */
    List<String> getPageDecorationList(Bson filter, Pageable pageable);

    /**
     * 根据条件查询装修页详情列表
     *
     * @param filter
     * @return
     */
    List<String> getPageDecorationDetailList(Bson filter);

    /**
     * 根据条件查询并更新
     *
     * @param filter
     * @param document
     * @param bool
     * @return
     */
    boolean findAndUpdate(Bson filter, Document document, boolean bool);

    /**
     * 删除页面装修详情数据
     *
     * @param filter
     * @return
     */
    boolean del(Bson filter);

    /**
     * 根据条件查询装修详情页数据
     *
     * @param filter
     * @return
     */
    String getPageDecorationDetail(Bson filter);

    /**
     * 根据条件查询总条数
     *
     * @param filter
     * @return
     */
    int countNum(Bson filter);
}
